在Android开发中官网不推荐使用枚举enums。
占用内存多(Enums often require more than twice as much memory as static constants.)。 Android中当你的App启动后系统会给App单独分配一块内存,App的DEX code、Heap以及运行时的内存分配都会在这块内存中。
使用
1 | public class MainActivity extends Activity { |
使用@StringDef
1 | ({ |
注解生命周期
- RetentionPolicy.SOURCE 源码注解,编译成.class文件后注解就不存在,用来提示开发者
- RetentionPolicy.CLASS CLASS汇编注解,编译成.class文件后注解也还存在,用于自动生成代码
- RetentionPolicy.RUNTIME 运行时动态注解,生命周期一直程序运行时都存在,常用于自动注入